package com.honey.compilation.sql;

import java.util.ArrayList;
import java.util.List;

import com.honey.core.builder.CharacterBuilder;
import com.honey.core.compiler.CompilationElement;
import com.honey.core.compiler.IndentSpace;

/**
 * SQL语句中没有特殊意义必须和其它的命令组合起来才有完整意义的语句例如:<br />
 * Column 单独的column在语法层次上没有任何意义,在和 Create Table 或者 Select 等这些命令组合在一起,就有意义了<br /> 
 * 
 * @author Administrator
 *
 */
public abstract class SqlElement  implements CompilationElement{
	
	private List<String> sqlDocLines;
	
	public SqlElement(){
		sqlDocLines = new ArrayList<String>();
	}
	
	public List<String> getSqlDocLines() {
        return sqlDocLines;
    }
    
    public void addSqlDocLine(String ...sqlDocLines) {
        for(String s : sqlDocLines){
        	if(s!= null )
        		this.sqlDocLines.add(s);
        }
    }
	
    protected void addFormattedSqlDocLines(CharacterBuilder cb, int indentLevel ){
    	
    	for(String doc : getSqlDocLines()){
    		cb.append(SqlKeyWord.OPERATION_COMMENT).
			append(doc);
			IndentSpace.newLine(cb);
			IndentSpace.spaceIndent(cb, indentLevel);
		}
    }
    
}
